Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 1.13 KB

File metadata and controls

50 lines (41 loc) · 1.13 KB

930. Binary Subarrays With Sum

Given a binary array nums and an integer goal, return the number of non-empty subarrays with a sumgoal.

A subarray is a contiguous part of the array.

Example 1:

Input: nums = [1,0,1,0,1], goal = 2 Output: 4 Explanation: The 4 subarrays are bolded and underlined below: [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] [1,0,1,0,1] 

Example 2:

Input: nums = [0,0,0,0,0], goal = 0 Output: 15 

Constraints:

  • 1 <= nums.length <= 3 * 104
  • nums[i] is either 0 or 1.
  • 0 <= goal <= nums.length

Solutions (Rust)

1. Solution

use std::collections::HashMap;implSolution{pubfnnum_subarrays_with_sum(nums:Vec<i32>,goal:i32) -> i32{letmut count = HashMap::new();letmut sum = 0;letmut ret = 0; count.insert(0,1);for num in nums { sum += num; ret += count.get(&(sum - goal)).unwrap_or(&0);*count.entry(sum).or_insert(0) += 1;} ret }}
close